package com.hmdp.service;

import com.hmdp.dto.Result;
import com.hmdp.entity.Blog;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 虎哥
 * @since 2021-12-22
 */
public interface IBlogService extends IService<Blog> {
    /**
     * 根据博客id查询博客详情，同时为用户字段赋值
     * @param id
     * @return
     */
    Result queryBlogById(Long id);

    Result queryHotBlog(Integer current);

    /**
     * 用户点赞/取消点赞，同一个用户最多点赞一次，再点赞就是取消
     * @param id
     * @return
     */
    Result likeBlog(Long id);

    /**
     * 查询为id博客点赞的用户(点赞时间top5最早的用户)
     * @param id
     * @return
     */
    Result queryBlogLikes(Long id);

    /**
     * 将blog保存到数据库，同时推送给自己的所有粉丝
     * @param blog
     * @return
     */
    Result saveBlog(Blog blog);

    /**
     * 滚动查询我收到的博主(我关注的博主)的blog
     * @param max 本次查询的最大时间戳(zset得分) 第一次请求：前端计算出的当前时间戳
     * @param offset 偏移量，用于跳过时间戳相同的博客记录 第一次请求：null offset = 0
     * @return
     */
    Result queryBlogOfFollow(Long max, Integer offset);
}
